//////////////////////////////////////////////////////////////////////////

#ifndef _NETWORKPACKET_H_
#define _NETWORKPACKET_H_

//////////////////////////////////////////////////////////////////////////

#include <vector>

//////////////////////////////////////////////////////////////////////////


/** Class for network packets
*
*  @author   Roman Pasechnik
*  @since    Jul 04th, 2009
*  @updated  Oct 14th, 2009
*/
class NetworkPacket
{
//////////////////////////////////////////////////////////////////////////

public:

//////////////////////////////////////////////////////////////////////////


    /** Constructor */
    NetworkPacket ( const char* _data = NULL, size_t _length = 0 )
        : m_Data(_data, _data + _length)
    {
    }


//////////////////////////////////////////////////////////////////////////


    /** Gets data */
    const char* Data() const
    {
        return &m_Data.front();
    }


    /** Gets data size */
    size_t Size() const
    {
        return m_Data.size();
    }


//////////////////////////////////////////////////////////////////////////

protected:

//////////////////////////////////////////////////////////////////////////


    /** Packet data */
    std::vector<char> m_Data;


//////////////////////////////////////////////////////////////////////////
};


//////////////////////////////////////////////////////////////////////////

#endif

//////////////////////////////////////////////////////////////////////////
